SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO
CREATE PROCEDURE [dbo].[pje_porResidenciaEnLaProvincia] @idinscripcion integer,@puntaje float output,@resultado as integer output   AS

set nocount on

declare @topeResidencia as  integer,@fechaCierreDeInscripciones as datetime
declare  @idAgente as int,@CargoGenerico as int,@AsignaturaGenerica as int, @idTipoConvocatoria as int ,@fechaLimite as datetime
declare @años as integer,@añosSProvincia as integer,@estado as integer,@FechaDeRadicacion as datetime
declare @años1 as integer
DECLARE @Error INT

BEGIN TRANSACTION
SET @ERROR=0

select @topeResidencia= (select valor1 from tb_parametros where idparametro=99)
set @topeResidencia = isnull(@topeResidencia ,9999) --si no tiene tope le asigno uno imposible de superar

select  @idAgente=i.Agente,@cargoGenerico = i.CargoGenerico,@AsignaturaGenerica=i.AsignaturaGenerica,@idtipoConvocatoria=Conv.TipoConvocatoria,@FechaLimite=Conv.FechaLimite,@fechaCierreDeInscripciones=Conv.fechaCierre
	from 
	tb_inscripcionesConvocatorias i 
		join tb_Convocatorias conv on i.Convocatoria=conv.idConvocatoria 
	where i.idInscripcionConvocatoria=@idInscripcion


--if  @idTipoConvocatoria  in (1,4,5,9)  --    TipoConvocatoria = 1 ingreso,interinatos y suplencias
--begin
	print ' fechaCierre ' + cast(@fechaCierreDeInscripciones as varchar)
	print ' fechaLimite ' + cast(@FechaLimite as varchar)
	
	select @años = sum(datediff(dd,desde,isnull(hasta,@fechaCierreDeInscripciones)))/365  from tb_residencias a
	join tb_localidades b on a.localidad=b.idlocalidad
	where agente=@idagente and departamento=1 and a.FechaPresentacion <= @FechaLimite

	print ' años ' + cast(@años as varchar)

	select @años1=max( isnull((datediff(dd,isnull(FechaEgreso,@fechaCierreDeInscripciones),@fechaCierreDeInscripciones)/365) ,0))
	from tb_titulosdelAgente a
	join tb_Titulos b on a.titulo=b.idtitulo
	where agente=@idagente and EsProfesorado='S' and a.Asiento='S' and a.FechaPresentacion <= @FechaLimite

	SET @Error = @@ERROR 
	IF @Error <> 0 GOTO Salir

	if @años1 > @años  set @años=@años1	

	select @puntaje=case
		when @años >= 10 then 20
		when  @años between 5 and 10 then 10
		when @años between 2 and 4 then 5
		else 0
	end 
--end

if @puntaje > @topeResidencia set @puntaje=@topeResidencia
print 'Puntaje por Residencia en la Provincia ' + cast( @puntaje as varchar)
Salir:
IF @Error <> 0 
	ROLLBACK TRANSACTION
ELSE 
	COMMIT TRANSACTION
GO
GRANT EXECUTE ON  [dbo].[pje_porResidenciaEnLaProvincia] TO [Juntas]
GO
